import type { PropType } from 'vue'
import type { TreeOption } from './types'

const props = {
  // store模块 名称
  treeData: {
    type: Array as PropType<TreeOption[]>,
    default: () => []
  },
  // 当属性 check-strictly=true 时，任何节点都可以被选择，否则只有子节点可被选择。
  checkStrictly: {
    type: Boolean,
    default: false
  },
  // 当使用 show-checkbox时，由于 check-on-click-node 默认值是 false，这时候只能通过 checkbox 来选中，当然您也可以将其设置成 true，这样点击整个 node 都可以用来完成选择
  isShowCheckbox: {
    type: Boolean,
    default: true
  },
  checkOnClickNode: {
    type: Boolean,
    default: false
  },
  // 添加按钮路由路径
  defaultExpandAll: {
    type: Boolean,
    default: true
  },
  // 通过 draggable 属性可让节点变为可拖拽
  isDraggable: {
    type: Boolean,
    default: false
  },
  isOperator: {
    type: Boolean,
    default: false
  },
  isEditNode: {
    type: Boolean,
    default: true
  },
  ellipsisLen: {
    type: Number,
    default: 13
  },
  defaultProps: {
    type: Object as PropType<TreeOption>,
    default: () => {
      return {
        // isLeaf: 'isLeaf',
        id: 'strategyId',
        children: 'children',
        label: 'label',
        disabled: 'disabled'
      }
    }
  },
  showOptDialogFunc: {
    type: String,
    default: 'showOptDialogFunc'
  }
}

export default props
